home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0328 / clipper / cb / cb.exe / SAMPLE.ASC < prev   
Encoding:
Text File  |  1992-08-12  |  14.2 KB  |  308 lines

  1.     1  *************************************************************************
  2.     2  *                                                                       *
  3.     3  *  BESCHREIBUNG:                                                        *
  4.     4  *                                                                       *
  5.     5  *    Dieses Programm verdeutlicht die Verwendung der in CB.OBJ ent-     *
  6.     6  *    haltenen Funktionen                                                *
  7.     7  *                                                                       *
  8.     8  *************************************************************************
  9.     9  *                                                                       *
  10.    10  *  PROZEDUREN und FUNKTIONEN:                                           *
  11.    11  *                                                                       *
  12.    12  *    procedure BUCHEN     -  ermittelt die Beitragszahlungen            *
  13.    13  *    procedure SCHREIBEN  -  erstellt die Bankdiskette                  *
  14.    14  *                                                                       *
  15.    15  *************************************************************************
  16.    16  *                                                                       *
  17.    17  *  DATEIEN im Zugriff:                                                  *
  18.    18  *                                                                       *
  19.    19  *    VEREIN.DBF  -  enthält die Angaben zum Verein                      *
  20.    20  *    BEITRAG.DBF -  enthält die Beitragsdaten                           *
  21.    21  *    DTAUS1.DBF  -  temporäre Datei mit den Bankdaten                   *
  22.    22  *                                                                       *
  23.    23  *************************************************************************
  24.    24  *                                                                       *
  25.    25  *  VARIABLEN:                                                           *
  26.    26  *                                                                       *
  27.    27  *    ename     -  Name des Vereins                                      *
  28.    28  *    eblz      -  BLZ des Vereins                                       *
  29.    29  *    ektonr    -  Kontonummer des Vereins                               *
  30.    30  *    emod      -  Kennziffer für Prüfziffernverfahren                   *
  31.    31  *    ebank     -  Name der bezogenen Bank                               *
  32.    32  *    eort      -  Sitz der bezogenen Bank                               *
  33.    33  *    gut       -  Gutschriften oder Lastschriften                       *
  34.    34  *    arbeit    -  Arbeitsbereich für DTAUS1.DBF                         *
  35.    35  *    liste[1]  -  Array mit Textzeilen                                  *
  36.    36  *     bis                                                               *
  37.    37  *    liste[16]                                                          *
  38.    38  *    ts        -  Textschlüssel                                         *
  39.    39  *    fname     -  Name des Mitglieds                                    *
  40.    40  *    fblz      -  BLZ des Mitglieds                                     *
  41.    41  *    fktonr    -  Kontonummer des Mitglieds                             *
  42.    42  *    fmod      -  Kennziffer für Prüfziffernverfahren                   *
  43.    43  *    lauf      -  Kennbuchstabe für Laufwerk                            *
  44.    44  *    disk      -  Kennziffer für Diskettenkapazität                     *
  45.    45  *                                                                       *
  46.    46  *************************************************************************
  47.    47  *                                                                       *
  48.    48  *  ÄNDERUNGEN:                                                          *
  49.    49  *                                                                       *
  50.    50  *********************** COPYRIGHT B. HOHENESTER *************************
  51.    51  procedure buchen
  52.    52  *
  53.    53  *  ggf. Meldung für Benutzer
  54.    54  *
  55.    55  *
  56.    56  *  ggf. Abbruchmöglichkeit
  57.    57  *
  58.    58  *
  59.    59  *  hier werden die konstanten Variablen für die Funktionen in CB vorbelegt
  60.    60  *
  61.    61  select 2
  62.    62  use verein                                       && Datei mit Vereinsdaten öffnen
  63.    63  ename = ver_name                                 && eigener Name
  64.    64  eblz = ver_blz                                   && eigene BLZ
  65.    65  ektonr = ver_blz                                 && eigene Kontonummer
  66.    66  ebank = ver_bname                                && eigener Bankname
  67.    67  eort = ver_ort                                   && Sitz der Bank
  68.    68  gut = .F.                                        && hier Lastschriften
  69.    69  arbeit = 7                                       && Arbeitsbereich für DTAUS1.DBF
  70.    70  use                                              && Datei schließen
  71.    71  emod = "09"
  72.    72  blz_flag = .F.                                   && Zeiger für Datei offen
  73.    73  *
  74.    74  *  Bankleitzahlenbibliothek öffnen
  75.    75  *  Diese Bibliothek können Sie gesondert bestellen
  76.    76  *
  77.    77 ┌if file("BLZ.DBF")
  78.    78 │  use blz index blz
  79.    79 │  seek eblz
  80.    80 │ ┌if found()
  81.    81 │ │  store feld7 to emod                          && Kennziffer für Prüfverfahren holen
  82.    82 │ └endif
  83.    83 │  blz_flag = .T.                                 && Datei bleibt geöffnet!
  84.    84 └endif
  85.    85  select 1
  86.    86  *
  87.    87  *  die restlichen Variablen werden während des Schleifendurchlaufs gesetzt
  88.    88  *
  89.    89  declare liste[16]                                && Array für Verwendungszweck usw.
  90.    90 ┌for i = 1 to 16                                  && MUSS mit Leerstrings vorbelegt werden!
  91.    91 │  liste[i] = ""
  92.    92 └next i
  93.    93  ts = "10"                                        && Textschlüssel
  94.    94  *
  95.    95  *  sonstige Variablen vorbelegen
  96.    96  *
  97.    97  a_satz = .T.                                     && A-Satz schreiben veranlassen
  98.    98  vbeitrag = 50                                    && Mitgliedsbeitrag DM 50,-
  99.    99  select 1
  100.   100  use beitrag                                      && Beitragsdatei öffnen
  101.   101  go top
  102.   102 ┌do while .NOT. eof()
  103.   103 │  *
  104.   104 │  *  restliche Variablen für CB vorbelegen
  105.   105 │  *
  106.   106 │  fblz = blz                                     && BLZ des Mitglieds
  107.   107 │  fname = trim(vorname) + " " + trim(name)       && Name des Mitglieds
  108.   108 │  fktonr = ktonr                                 && Kontonummer des Mitglieds
  109.   109 │  liste[1] = "Mitgliedsnummer: " + mnr           && Verwendungszweck 1. Zeile
  110.   110 │  liste[3] = "Mitgliedsbeitrag für " + year(date())      && Verwendungszweck 2. Zeile
  111.   111 │  fmod = "09"                                    && Kennziffer vorbelegen
  112.   112 │  *
  113.   113 │  *  Bankleitzahlenbibliothek
  114.   114 │  *
  115.   115 │ ┌if blz_flag
  116.   116 │ │  select 2
  117.   117 │ │  seek fblz
  118.   118 │ │ ┌if found()
  119.   119 │ │ │  store feld7 to fmod
  120.   120 │ │ └endif
  121.   121 │ │  select 1
  122.   122 │ └endif
  123.   123 │  *
  124.   124 │  *  fälligen Beitrag ermitteln
  125.   125 │  *  dabei wird der Feldinhalt BEITRAG vom Jahresbeitrag VBEITRAG abgezogen
  126.   126 │  *
  127.   127 │  vbeifael = vbeitrag - beitrag
  128.   128 │  *
  129.   129 │  *  wenn noch Beitrag bezahlt werden muß, Zahlung in der Datei BEITRAG
  130.   130 │  *  eintragen und für CB anlegen
  131.   131 │  *
  132.   132 │ ┌if vbeifael > 0
  133.   133 │ │ ┌if a_satz                                    && wenn noch kein A-Satz geschrieben, dann jetzt
  134.   134 │ │ │  cba_rueck = cb_a(ename, eblz, ektonr, emod, gut, arbeit)
  135.   135 │ │ │ ┌do case
  136.   136 │ │ │ ├──case cba_rueck = 1                     && ungültige Bankleitzahl
  137.   137 │ │ │ │    *
  138.   138 │ │ │ │    *  Fehlermeldung an Benutzer
  139.   139 │ │ │ │    *
  140.   140 │ │ │ ├──case cba_rueck = 2                     && ungültiger Name
  141.   141 │ │ │ │    *
  142.   142 │ │ │ │    *  Fehlermeldung an Benutzer
  143.   143 │ │ │ │    *
  144.   144 │ │ │ ├──case cba_rueck = 3                     && ungültige Kontonummer
  145.   145 │ │ │ │    *
  146.   146 │ │ │ │    *  Fehlermeldung an Benutzer
  147.   147 │ │ │ │    *
  148.   148 │ │ │ ├──case cba_rueck = 4                     && ungültiger Arbeitsbereich
  149.   149 │ │ │ │    *
  150.   150 │ │ │ │    *  Fehlermeldung an Benutzer
  151.   151 │ │ │ │    *
  152.   152 │ │ │ └endcase
  153.   153 │ │ │ ┌if cba_rueck # 0                           && wenn schon beim A-Satz Fehler aufgetreten, dann abbrechen
  154.   154 │ │ │ │ ┌if blz_flag                              && wenn Datei geöffnet, wieder schließen
  155.   155 │ │ │ │ │  select 2
  156.   156 │ │ │ │ │  use
  157.   157 │ │ │ │ │  select 1
  158.   158 │ │ │ │ └endif
  159.   159 │ │ │ │  use                                      && Beitragsdatei schließen
  160.   160 │ │ │ │  return
  161.   161 │ │ │ └endif
  162.   162 │ │ │  a_satz = .F.                               && weiteres Schreiben von A-Satz verhindern
  163.   163 │ │ └endif
  164.   164 │ │  *
  165.   165 │ │  *  jetzt wird die Zahlung für CB angelegt
  166.   166 │ │  *
  167.   167 │ │  cbc_rueck = cb_c(fname, fblz, fktonr, fmod, fbetrag, ts, liste)
  168.   168 │ │  *
  169.   169 │ │  *  wenn beim Schreiben des C-Satzes ein Fehler aufgetreten ist, dann
  170.   170 │ │  *  Meldung an Benutzer ausgeben.
  171.   171 │ │  *  Es ist sinnvoll, z. B. den Namen des Mitglieds bei dieser Fehlermeldung
  172.   172 │ │  *  anzugeben, da diese Zahlung manuell nachgeholt werden muß.
  173.   173 │ │  *
  174.   174 │ │ ┌if cbc_rueck # 0
  175.   175 │ │ │ ┌do case
  176.   176 │ │ │ ├──case cbc_rueck = 1                     && ungültige BLZ des Mitglieds
  177.   177 │ │ │ │    *
  178.   178 │ │ │ │    *  Fehlermeldung an Benutzer
  179.   179 │ │ │ │    *
  180.   180 │ │ │ ├──case cbc_rueck = 2                     && ungültiger Name des Mitglieds
  181.   181 │ │ │ │    *
  182.   182 │ │ │ │    *  Fehlermeldung an Benutzer
  183.   183 │ │ │ │    *
  184.   184 │ │ │ ├──case cbc_rueck = 3                     && ungültige Kontonummer des Mitglieds
  185.   185 │ │ │ │    *
  186.   186 │ │ │ │    *  Fehlermeldung an Benutzer
  187.   187 │ │ │ │    *
  188.   188 │ │ │ ├──case cbc_rueck = 4                     && ungültiger Betrag
  189.   189 │ │ │ │    *
  190.   190 │ │ │ │    *  Fehlermeldung an Benutzer
  191.   191 │ │ │ │    *
  192.   192 │ │ │ ├──case cbc_rueck = 5                     && ungültiger Textschlüssel
  193.   193 │ │ │ │    *
  194.   194 │ │ │ │    *  Fehlermeldung an Benutzer
  195.   195 │ │ │ │    *
  196.   196 │ │ │ ├──case cbc_rueck = 6                     && ungültige Jahreszahl in Textschlüssel
  197.   197 │ │ │ │    *
  198.   198 │ │ │ │    *  Fehlermeldung an Benutzer
  199.   199 │ │ │ │    *
  200.   200 │ │ │ └endcase
  201.   201 │ │ ├else
  202.   202 │ │ │  replace beitrag with (beitrag + vbeifael)  && Zahlung in Beitragsdatei eintragen
  203.   203 │ │ └endif
  204.   204 │ └endif
  205.   205 │  skip
  206.   206 └enddo
  207.   207  *
  208.   208  *  wenn ein A-Satz geschrieben wurde, muß nun ein E-Satz angelegt werden
  209.   209  *
  210.   210 ┌if cba_rueck = 0
  211.   211 │  cb_e()
  212.   212 └endif
  213.   213 ┌if blz_flag                                      && wenn Datei geöffnet, wieder schließen
  214.   214 │  select 2
  215.   215 │  use
  216.   216 │  select 1
  217.   217 └endif
  218.   218  *
  219.   219  *  zum Abschluß die Datei DTAUS1 auf Diskette schreiben
  220.   220  *
  221.   221  do schreiben
  222.   222  use                                              && Beitragsdatei schließen
  223.   223  return
  224.   224  *************************************************************************
  225.   225  *************************************************************************
  226.   226  procedure schreiben
  227.   227  *
  228.   228  *  ggf. Meldung für Benutzer
  229.   229  *
  230.   230  *
  231.   231  *  ggf. Laufwerk, auf dem die Diskette erstellt werden soll, abfragen
  232.   232  *
  233.   233  lauf = "A"                                       && Laufwerk A:
  234.   234  *
  235.   235  *  ggf. prüfen, ob Diskette in das bezeichnete Laufwerk eingelegt ist
  236.   236  *
  237.   237  *
  238.   238  *  ggf. Kapazität der Diskette ermitteln
  239.   239  *
  240.   240  disk = "1"                                       && Diskette 360 KByte
  241.   241  *
  242.   242  *  jetzt werden die Daten auf Diskette geschrieben und die Sicherungsdatei angelegt
  243.   243  *  die Variable ARBEIT wurde bereits definiert
  244.   244  *
  245.   245  cbd_rueck = cb_dtaus(lauf, disk, arbeit)
  246.   246  *
  247.   247  *  da die Daten in eine Datei "gedruckt" werden, MUSS der Drucker neu gesetzt
  248.   248  *  werden!
  249.   249  *
  250.   250  set printer to lpt1
  251.   251 ┌do case
  252.   252 ├──case cbd_rueck = 1                           && temporäre Datei DTAUS1.DBF nicht gefunden
  253.   253 │    *
  254.   254 │    *  Fehlermeldung an Benutzer
  255.   255 │    *
  256.   256 ├──case cbd_rueck = 2                           && ungültige Diskettenkapazität angegeben
  257.   257 │    *
  258.   258 │    *  Fehlermeldung an Benutzer
  259.   259 │    *
  260.   260 ├──case cbd_rueck = 3                           && ungültiges Laufwerk angegeben
  261.   261 │    *
  262.   262 │    *  Fehlermeldung an Benutzer
  263.   263 │    *
  264.   264 ├──case cbd_rueck = 4                           && ungültiger Arbeitsbereich
  265.   265 │    *
  266.   266 │    *  Fehlermeldung an Benutzer
  267.   267 │    *
  268.   268 ├──case cbd_rueck = 5                           && nicht genügend Speicherplatz auf Diskette
  269.   269 │    *
  270.   270 │    *  Fehlermeldung an Benutzer
  271.   271 │    *
  272.   272 └endcase
  273.   273 ┌if cbd_rueck # 0                                 && wenn Fehler aufgetreten, Abbruch
  274.   274 │  return
  275.   275 └endif
  276.   276  *
  277.   277  *  Begleitscheine drucken
  278.   278  *  die Variablen eBANK, eORT und ARBEIT wurden bereits definiert
  279.   279  *
  280.   280  *
  281.   281  *  ggf. vorher prüfen, ob Drucker bereit
  282.   282  *
  283.   283  cbb_rueck = cb_begleit(ebank, eort, disk, arbeit)
  284.   284 ┌do case
  285.   285 ├──case cbb_rueck = 1                           && ungültiger Arbeitsbereich
  286.   286 │    *
  287.   287 │    *  Fehlermeldung an Benutzer
  288.   288 │    *
  289.   289 ├──case cbb_rueck = 2                           && ungültige Diskettenkapazität
  290.   290 │    *
  291.   291 │    *  Fehlermeldung an Benutzer
  292.   292 │    *
  293.   293 ├──case cbb_rueck = 3                           && temporäre Datei DTAUS1.DBF nicht gefunden
  294.   294 │    *
  295.   295 │    *  Fehlermeldung an Benutzer
  296.   296 │    *
  297.   297 └endcase
  298.   298 ┌if cbb_rueck # 0                                 && wenn Fehler aufgetreten, Abbruch
  299.   299 │  return
  300.   300 └endif
  301.   301  *
  302.   302  *  nach erfolgreichem Schreiben der Datei DTAUS1 auf Diskette UND Ausdruck
  303.   303  *  der Begleitscheine MUSS die Datei DTAUS1.DBF gelöscht werden, da sonst
  304.   304  *  die Daten erhalten bleiben!
  305.   305  *
  306.   306  erase dtaus1.dbf
  307.   307  return
  308.   308  *************************************************************************